Repository navigation
fix(id): name the hanging group in nixos-integration VM test (#1372) - #4913
Conversation
The whole cli_integration binary ran in one server.succeed() with --format=terse, so a hang produced only "timeout reached; test terminating..." with no test name or wait target. Run the suite as four named groups (fast_unit, serve, tag, harness_unit), each under its own timeout deadline and with the pretty libtest format. A hang now names the group and filters before the per-group deadline fires, and libtest names the individual tests still running after 60 s. A coverage check proves the filters partition every test in the binary before anything runs, so no test is dropped. A 3400 s suite budget keeps every failure below the 3600 s globalTimeout backstop. Coverage and the deadline failure path were verified against the locally built test binary; the full VM run is the remaining validation.
|
Warning Review limit reachedYou've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Next included review available in 21 minutes. View limit details
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. CodeRabbit Verify
|
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
…96-1372-legible-vm-timeout
What
pkgs/id/nix/tests/integration-test.nixran the entirecli_integrationbinary as one
server.succeed()with--test-threads=2 --nocapture --format=terse, so a hang produced onlytimeout reached; test terminating...with no test name or wait target (#1372, recurrence of #896's acceptance).
This makes the harness legible without changing what is covered:
fast_unit(49 tests),serve(43),tag(29),harness_unit(5) — each run under its own GNUtimeoutdeadline(900/2200/400/300 s) instead of one 3600 s
globalTimeout.filters, effective deadline, and remaining suite budget.
--format=prettyreplaces--format=terse, so completed tests streaminto the log and libtest prints
test <name> has been running for over 60 secondsfor anything still running.hang always fails with a named group inside the budget rather than at the
driver's
globalTimeout = 3600(which stays as the backstop).naming all failed groups — a failing
serveno longer hidestagorharness_unitresults.TEST_BIN --listfirst and proves the groupfilters partition every test exactly once. A new test module that is not in
GROUPSfails immediately with the uncovered names instead of silentlybeing dropped.
Validation (real VM, 2026-11-03)
nix build .#checks.x86_64-linux.nixos-integrationon the branch, reusing thebranch's built
integrationTestRunnerandidbinary. The stock build iscurrently blocked before the VM by the pre-existing #4850 checkPhase failure,
so only that unrelated
id-webcheckPhase was skipped; the harness and all126 tests ran unchanged.
The three
servefailures are pre-existing and now name themselves:test_world_join_via_ssh_carries_the_frame_protocol,test_world_ssh_tunnel_carries_join_via_ssh, andtest_world_module_shared_over_iroh_and_web_presentations, all rooted in theidbinary being built without thesshfeature — filed as #4960. Beforethis change that failure arrived as a bare terse log.
A deliberate short-deadline run (same harness,
servedeadline 5 s) produced:Other checks:
nix evalof the check derivation,python3 -m py_compileofthe emitted
testScript,nixfmtclean.Remaining blockers for a green stock check (pre-existing, not this PR)
id-webcheckPhase fails on main (ChainExtliterals missing theid: protocol v1 phase 1 — session header + segment checkpoint event kind (#2036) #3794
checkpointfield).idbinary is built withoutssh, so the SSH worldtests cannot pass.
This PR is reporting-only; the suite's coverage is unchanged.
Refs #1372. Scope deliberately excludes chasing which test hangs and editing
the integration tests themselves.